iT邦幫忙

2025 iThome 鐵人賽

DAY 0
0
自我挑戰組

使用 DVWA 與 Kali Linux 的攻防學習系列 第 11

【Day 11】直接跟伺服器對話(下):我的第一次 Command Injection 嘗試

  • 分享至 

  • xImage
  •  

前言

既然 ls 可以,那其他指令呢?

第四步:得寸進尺
我試了 whoami,想知道現在是以哪個使用者的身分在執行指令。

Payload: 8.8.8.8 && whoami

https://ithelp.ithome.com.tw/upload/images/20251014/20173483KsyadiG8Kr.png

結果: 頁面回傳了 www-data。這讓我知道,我是以網頁伺服器專用的低權限使用者身分在執行指令。這算是不幸中的大幸,至少不是最高權限的 root。

接著,我更大膽地嘗試讀取系統檔案,比如存放使用者帳號資訊的 /etc/passwd。

Payload: 8.8.8.8 && cat /etc/passwd

https://ithelp.ithome.com.tw/upload/images/20251014/20173483CXynCtgpT9.png

結果: 頁面真的把 /etc/passwd 檔案的內容全部顯示了出來!我能看到伺服器上有 root, daemon, bin 等系統使用者。

第五步:檢視原始碼,找出元兇
DVWA 很棒的一點是,它允許我直接看造成漏洞的原始碼。我點擊頁面下方的「View Source」按鈕。
https://ithelp.ithome.com.tw/upload/images/20251014/20173483s1OZ8Qo1Tx.png

在 low 等級下,核心程式碼是這樣的:
https://ithelp.ithome.com.tw/upload/images/20251014/201734834bYTgphAWW.png

原因一目了然。程式直接把我輸入的內容 ($target),用一個 . 拼接到了 ping -c 4 這串指令後面,然後就交給 shell_exec() 去執行了。它完全沒有檢查我的輸入中是否包含了 && 或 ; 這樣的特殊字元。這就像是對使用者完全不設防,給了攻擊者一個執行任意指令的後門。

今日總結

這個漏洞的威力讓我印象深刻。不過,這只是在 low 的安全等級。我很想知道,在 medium 等級下,DVWA 會用什麼方法來防禦這種攻擊?

明天,我的目標就是分析 medium 等級的防禦機制,並嘗試繞過它。


上一篇
【Day 10】直接跟伺服器對話(上):我的第一次 Command Injection 嘗試
下一篇
【Day 12】DVWA啟動問題(一)
系列文
使用 DVWA 與 Kali Linux 的攻防學習17
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言